Field
The disclosed embodiments relate to techniques for performing garbage collection operation to facilitate the execution of a software program. More specifically, the disclosed embodiments relate to a technique for implementing a remembered set for use by a generational garbage collector.
Related Art
During the execution of a software program, one or more threads of the software program may dynamically allocate memory on the heap to store objects used by the software program. The execution environment of the software program often provides automatic memory management in the form of a garbage collection system. More specifically, a garbage collector may automatically reclaim memory from dead objects on the heap on behalf of the software program, thereby freeing the software program from having to clean up the heap itself.
However, garbage collectors are not provided without a cost. Certain garbage collector implementations may rely on one or more data structures that are auxiliary to those used by the software program. In some cases, these auxiliary data structures may occupy a significant portion of the heap, thereby reducing the amount of available memory for the software program. Also, accessing these data structures can involve a large number of computation operations. Hence, what is needed is a garbage collector implementation that operates efficiently and with a reduced memory footprint.